/**
 * Clase con método main que utiliza un Operador
 * @author andrewtortoise 
 */

//import java.util.InputMismatchException;
import java.util.Scanner;
public class Menu {

	public static void main(String[] args) {
		Scanner user= new Scanner(System.in);
		Operador calcu= new Operador();
		int elecc;
		do {
		System.out.println("\t\t ~~~~CALCULADORA POSTFIX DE PILA~~~~ \t\t\nIngrese su opción:");
		System.out.println("\t1: Ver instrucciones\n\t2: Ver pila\n\t3: Ingresar operando\n\t4: Operar (últimos dos dígitos de la pila)\n\t0: Salir");
		elecc=user.nextInt();
	//	try {
		switch (elecc) {
		case 1:
		{
			System.out.println("La siguiente es una calculadora 'postfix', es decir, se introducen primero los operandos y luego las operaciones.\nPor ejemplo, para la instruccion ");
			System.out.println("7 + 5\nUsted debera introducir dos operandos individualmente: 5 & 7, y luego la operacion 'sumar', definida con un numero especifico de la instruccion '4: operar'.");
			System.out.println("Notese que cada operacion toma solo los dos ultimos elementos de la pila. Si tiene mas operandos en la pila, seran incluidos en futuras operaciones.");
			break;
		}
		case 2:
		{
			System.out.println(calcu.toString());
			break;
		}
		case 3:
		{
			System.out.print("Ingrese: ");
			double numero= user.nextDouble();
			calcu.agregar(numero);
			break;
		}
		case 4:
		{
			System.out.print("Ingrese su elección: \n1:Sumar\n2:Restar\n3:Multiplicar\n4:Dividir");
		//	try {
			switch (user.nextInt()) {
			case 1: 
				calcu.sumar();
				break;
			case 2:
				calcu.restar();
				break;
			case 3:
				calcu.mult();
				break;
			case 4:
				calcu.div();
				break;
			default:
				System.out.println("La opcion seleccionada no existe");
			}
			//} catch (Exception e) {System.err.println("Dato ingresado no es entero: "+e.getMessage());}
			break;
		}
		case 0: {
			break;
		}
		default:
			System.out.println("ERROR: La opcion ingresada no existe. Reintente.");
		}
		//}  catch (InputMismatchException e) {System.err.println("Dato ingresado no es entero: "+e.getMessage());}
		} while (elecc!=0);
	}

}
